package cn.iocoder.yudao.framework.datasource.core;

/**
 * 数据源切换服务接口
 * 提供数据源切换的业务服务，自动检查和创建数据源连接
 *
 * @author 芋道源码
 */
public interface ChangeDataSourceService {

    /**
     * 切换到指定数据源
     *
     * @param dataSourceKey 数据源标识
     */
    void changeDS(String dataSourceKey);

    /**
     * 切换到指定数据源，如果数据源不存在则根据配置创建
     *
     * @param dataSourceConfig 数据源配置
     */
    void changeDS(DataSourceConfigDO dataSourceConfig);

    /**
     * 回到默认数据源
     */
    void restoreDefaultDS();

    /**
     * 检查数据源是否存在
     *
     * @param dataSourceKey 数据源标识
     * @return 是否存在
     */
    boolean existsDataSource(String dataSourceKey);
}